package cn.itcast.nems.order.service;

import cn.itcast.nems.order.dao.dataobject.OrderPaymentFlowDO;
import cn.itcast.nems.order.dao.entity.OrderPaymentFlow;
import cn.itcast.nems.order.dto.OrderPaymentFlowChargeDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 销售订单-支付流水。注：只记录实际发生，正反向流水都保存在该表。 服务类
 * </p>
 *
 * @author liyong
 * @since 2023-08-31
 */
public interface OrderPaymentFlowService extends IService<OrderPaymentFlow> {

    /**
     * 功能描述：更新订单支付流水手续费。准确的支付手续费可能存在一定的滞后性（需要和渠道商对账后才能最终确认！）。
     *
     * @param orderId 订单ID
     * @param flowCharges 需要更新的流水手续费明细
     * @author 刘曙
     * @update:[变更日期YYYY-MM-DD][更改人姓名][变更描述]
     * @since 2023年9月11日
     */
    void changeCharge(String orderId, List<OrderPaymentFlowChargeDTO> flowCharges);

    /**
     * 添加支付流水
     *
     * @param orderPaymentFlow
     */
    OrderPaymentFlow addOrderPaymentFlow(OrderPaymentFlowDO orderPaymentFlow);

    IPage<OrderPaymentFlowDO> findPageList(Page<OrderPaymentFlowDO> page, OrderPaymentFlowDO orderPaymentFlowDO);
}
